#ifndef __M_MESSAGE_M__
#define __M_MESSAGE_M__
/*
    定义日志消息类,进行日志中间信息的存储：
    1. 日志的输出时间   用于过滤日志输出时间
    2. 日志等级        用于今夕日志过滤分析
    3. 源文件名称
    4. 源代码行号      用于定位出错代码的位置
    5. 线程id         用于过滤出错的线程
    6. 日志主体信息
    7. 日志器名称      (当前支持多日志器的同时使用)
*/
#include "util.hpp"
#include "level.hpp"
#include <iostream>
#include <string>
#include <thread>

namespace log
{
    struct LogMsg
    {
        LogMsg(LogLevel::value level, 
        time_t ctime,
        size_t line,
        const std::string msg,
        const std::string logger,
        const std::string file):
        _ctime(util::Date::now()),
        _level(level),
        _payload(msg),
        _file(file),
        _logger(logger),
        _line(line),
        _tid(std::this_thread::get_id())
        {
            ;
        }
        time_t _ctime; //时间戳
        LogLevel::value _level; //日志等级
        size_t _line; //行号
        std::thread::id _tid; //线程id
        std::string _file; //文件名字
        std::string _logger; //日志器名字 
        std::string _payload; //有效消息数据
    };
}
#endif